# coding=utf-8
import logging
import time


class CatchLogging(object):

    file_name = ''
    base_url = ''

    @staticmethod
    def basic_config():
        CatchLogging.file_name = '{}.log'.format(time.strftime("%Y%m%d", time.localtime()))
        logging.basicConfig(  # 针对 basicConfig 进行配置(basicConfig 其实就是对 logging 模块进行动态的调整，之后可以直接使用)
            level=logging.INFO,  # INFO 等级以下的日志不会被记录
            format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',  # 日志输出格式
            filename='{}/log/{}'.format(CatchLogging.base_url, CatchLogging.file_name),  # 日志存放路径(存放在当前相对路径)
            filemode='a',  # 输入模式；如果当前我们文件已经存在，可以使用 'a' 模式替代 'w' 模式
            # 与文件写入的模式相似，'w' 模式为没有文件时创建文件；'a' 模式为追加内容写入日志文件
        )

    @staticmethod
    def if_not_current_then_update_file_name():
        if CatchLogging.file_name == '' or not CatchLogging.file_name == '{}.log'.format(time.strftime("%Y%m%d", time.localtime())):
            CatchLogging.basic_config()

    @staticmethod
    def error(msg):
        CatchLogging.if_not_current_then_update_file_name()
        logging.error(msg)
        print(msg)

    @staticmethod
    def info(msg):
        CatchLogging.if_not_current_then_update_file_name()
        logging.info(msg)
